package org.lwd.datalink.service;

import org.lwd.datalink.domain.task.ActiveTasks;
import org.lwd.datalink.domain.task.TaskInfo;

/**
 * 同步任务配置 Service 接口
 *
 * @Author: weidong.lin
 * @Date: create in 2024/4/2 14:08
 */
public interface TaskConfigService {

    /**
     * 获得同步任务配置
     *
     * @param id 编号
     * @return 同步任务配置
     */
    TaskInfo getTask(Long id);


    /**
     * 获取某个分组下的所有active-task-config，如果没有配置则返回一个Empty-List.
     * active means "isDelete=fasle".
     *
     * @param groupId 分组id
     * @return
     */
    ActiveTasks getActiveTaskConfigsByGroup(Long groupId);

    /**
     * 获取所有task的最大修改时间(包含已删除的task),该时间即为TaskConfig的版本
     * 如果当前没有任何task配置，则版本号为-1
     *
     * @return 版本号
     */
    Long getTaskConfigVersion();
}
